home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / bits / sigaction.h < prev    next >
C/C++ Source or Header  |  2009-10-07  |  3KB  |  78 lines

  1. /* The proper definitions for Linux's sigaction.
  2.    Copyright (C) 1993-1999, 2000 Free Software Foundation, Inc.
  3.    This file is part of the GNU C Library.
  4.  
  5.    The GNU C Library is free software; you can redistribute it and/or
  6.    modify it under the terms of the GNU Lesser General Public
  7.    License as published by the Free Software Foundation; either
  8.    version 2.1 of the License, or (at your option) any later version.
  9.  
  10.    The GNU C Library is distributed in the hope that it will be useful,
  11.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13.    Lesser General Public License for more details.
  14.  
  15.    You should have received a copy of the GNU Lesser General Public
  16.    License along with the GNU C Library; if not, write to the Free
  17.    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  18.    02111-1307 USA.  */
  19.  
  20. #ifndef _SIGNAL_H
  21. # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
  22. #endif
  23.  
  24. /* Structure describing the action to be taken when a signal arrives.  */
  25. struct sigaction
  26.   {
  27.     /* Signal handler.  */
  28. #ifdef __USE_POSIX199309
  29.     union
  30.       {
  31.     /* Used if SA_SIGINFO is not set.  */
  32.     __sighandler_t sa_handler;
  33.     /* Used if SA_SIGINFO is set.  */
  34.     void (*sa_sigaction) (int, siginfo_t *, void *);
  35.       }
  36.     __sigaction_handler;
  37. # define sa_handler    __sigaction_handler.sa_handler
  38. # define sa_sigaction    __sigaction_handler.sa_sigaction
  39. #else
  40.     __sighandler_t sa_handler;
  41. #endif
  42.  
  43.     /* Additional set of signals to be blocked.  */
  44.     __sigset_t sa_mask;
  45.  
  46.     /* Special flags.  */
  47.     int sa_flags;
  48.  
  49.     /* Restore handler.  */
  50.     void (*sa_restorer) (void);
  51.   };
  52.  
  53. /* Bits in `sa_flags'.  */
  54. #define    SA_NOCLDSTOP  1         /* Don't send SIGCHLD when children stop.  */
  55. #define SA_NOCLDWAIT  2         /* Don't create zombie on child death.  */
  56. #define SA_SIGINFO    4         /* Invoke signal-catching function with
  57.                     three arguments instead of one.  */
  58. #if defined __USE_UNIX98 || defined __USE_MISC
  59. # define SA_ONSTACK   0x08000000 /* Use signal stack by using `sa_restorer'. */
  60. # define SA_RESTART   0x10000000 /* Restart syscall on signal return.  */
  61. # define SA_NODEFER   0x40000000 /* Don't automatically block the signal when
  62.                     its handler is being executed.  */
  63. # define SA_RESETHAND 0x80000000 /* Reset to SIG_DFL on entry to handler.  */
  64. #endif
  65. #ifdef __USE_MISC
  66. # define SA_INTERRUPT 0x20000000 /* Historical no-op.  */
  67.  
  68. /* Some aliases for the SA_ constants.  */
  69. # define SA_NOMASK    SA_NODEFER
  70. # define SA_ONESHOT   SA_RESETHAND
  71. # define SA_STACK     SA_ONSTACK
  72. #endif
  73.  
  74. /* Values for the HOW argument to `sigprocmask'.  */
  75. #define    SIG_BLOCK     0         /* Block signals.  */
  76. #define    SIG_UNBLOCK   1         /* Unblock signals.  */
  77. #define    SIG_SETMASK   2         /* Set the set of blocked signals.  */
  78.